package com.bbva.gptf.back.transformador;

import java.math.BigDecimal;
import java.util.Locale;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.core.convert.converter.Converter;

import com.bbva.gptf.back.dominio.Tgpt011Usuario;
import com.bbva.gptf.dto.bean.Usuario;
import com.bbva.jee.arq.spring.core.log.I18nLog;
import com.bbva.jee.arq.spring.core.log.I18nLogFactory;

/**
 * @author Javier Estrella Rodriguez
 * @version 1.0
 * @created 07-ene-2013 18:56:31
 */
public class UsuarioTransformador implements Converter<Tgpt011Usuario, Usuario> {

	@Autowired
	@Qualifier("locale_ES")
	private transient Locale localizacion;

	private final I18nLog log = I18nLogFactory
			.getLogI18n(UsuarioTransformador.class);

	@Autowired
	private PerfilTransformador perfilTransformador;

	@Override
	public Usuario convert(final Tgpt011Usuario source) {
		if (log.isTraceEnabled()) {
			log.trace(localizacion, "entrada.metodo",
					"Usuario convert(Tgpt011Usuario source)");
		}
		final Usuario usuario = new Usuario();
		usuario.setCdUsuario(source.getCdUsuario());
		usuario.setCdBancomer(source.getCdBancomer());
		usuario.setNbUsuario(source.getNbUsuario());
		usuario.setTxCorreo(source.getNbCorreo());
		usuario.setFhAlta(source.getFhAlta());
		usuario.setPerfil(perfilTransformador.convert(source.getCdPerfil()));
		usuario.setStUsuario(source.getStUsuario());
		usuario.setEstatusUsuario(source.getStUsuario() != null
				&& source.getStUsuario().compareTo(BigDecimal.ONE) == 0 ? "Activo"
				: "Inactivo");
		usuario.setTmUmo(source.getTmUmo());
		usuario.setFhUmo(source.getFhUmo());
		usuario.setCdUsuarioUmo(source.getCdUsuarioUmo());
		return usuario;
	}

	public void setLocalizacion(final Locale localizacion) {
		this.localizacion = localizacion;
	}

	public void setPerfilTransformador(
			final PerfilTransformador perfilTransformador) {
		this.perfilTransformador = perfilTransformador;
	}

}